package com.cjy.Thread2;

/*
    创建多线程程序的第一张方式：创建Thread类的子类
    java.lang.Thread类：是秒速线程的类，我们想要实现多线程程序，就必须继承Thread类

    实现步骤：
        1.创建一个Thread类的子类
        2.在Thread类的子类中重写Thread类中的run方法，设置线程任务（开启线程要做什么？）
        3.创建Thread的子类对象
        4.调用Thread类中的方法start方法，开启新的线程，执行run方法
            void start（）使线程开始执行；Java 虚拟机调用该线程的run方法。
            结果是两个线程并发运行，当前线程（main)和另一个线程（创建的新线程，执行其run方法）。
            多次启动一个线程是非法的。特别是当线程已经结束执行后，不能再重写启动
        java程序属于抢占式调度，哪个线程的优先级高，哪个线程优先执行；同一个优先级，随机选择一个执行
 */
public class TestThread {
    public static void main(String[] args) {

        //创建Thread类的子类对象
        ThreadSunDemo tts = new ThreadSunDemo();
        //调用Thread类的中的start方法，开启新线程，执行run方法
        tts.start();

        //主线程会继续执行主方法中的代码
        for (int i = 0; i < 20; i++) {
            System.out.println("main:"+i);
        }
        //不能同时运行两个进程，只能在线程来回切换，只不过切换速度较快，像两个线程同时运行
        //运行的结果是随机的，因为此时已有两个线程，一个是main线程，一个是新线程，两个线程会同时抢夺cpu的执行权，谁抢到就执行对应的代码
    }
}
